#ifndef SET_H
#define SET_H
#include"../include/rbtree.h"
typedef struct {  
    RBTree *tree; 
    /*
    时间：2025.03.19
    作者：zdw
    作用：容器数据量
    */
   int size;
    /*
    时间：2025.03.19
    作者：zdw
    函数名：insert
    作用：数据插入
    参数说明：self操作对象，key插入数据
    */ 
    int (*insert)(void *self, void *key);
    /*
    时间：2025.03.19
    作者：zdw
    函数名：contains
    作用：判断是否存在某个数据
    参数说明：self操作对象，key查找值
    */ 
    int (*contains)(void *self, void *key);
    /*
    时间：2025.03.19
    作者：zdw
    函数名：erase
    作用：数据删除
    参数说明：self操作对象，key删除的数据
    */ 
    void (*erase)(void *self, void *key);
    /*
    时间：2025.03.19
    作者：zdw
    函数名：clear
    作用：容器消除
    参数说明：self操作对象
    */ 
    void (*clear)(void *self);
    /*
    时间：2025.03.19
    作者：zdw
    函数名：data
    作用：获取容器数据
    参数说明：self操作对象
    */ 
    Array* (*data)(void *self);
} Set;  
/*
时间：2025.03.19
作者：zdw
函数名：set
作用：容器初始化
参数说明：compare比较函数
*/ 
Set* set(int (*compare)(const void *, const void *)); 

#endif